- Introduction
- Motivating Example
- Modifying Principal Component Analysis
- Simulation of NOC Observations
- Fault Induction
- Simulation Study Results
- Case Study Results
- Software Package for
R - Summary and References
RAs of a few months ago, all process features are now recorded on the same 1-minute interval.
PCA fails because of the autocorrelation and non-linearity / non-stationarity of the data. These are a few of the methods currently employed:
We combine Adaptive, Dynamic, and Multi-State modifications to PCA.
For an excellent summary of Adaptive and Dynamic PCA, see Ge and Song (2012).
These statistics are estimated non-parametrically, as discussed by Kazor et al. (2016)
To induce non-linearity and non-stationarity of each feature, let
Then the full non-linear, autocorrelated, non-stationary simulated process at index \(s\) is \(\textbf{X}_s := \left\langle x_1 = X_1(t_s), x_2 = X_2(t_s), \ldots, x_p = X_p(t_s) \right\rangle.\)
We follow Kazor et al. (2016) and continue updating the original design of Dong and McAvoy (1996). Thus
Change states hourly in sequence, where the three process states are
The process-specific scaling and projection matrices are: \[ \begin{gather} \textbf{P}_2 = \begin{bmatrix} 0 & 0.50 & -0.87 \\ 0 & 0.87 & 0.50 \\ 1 & 0 & 0 \end{bmatrix} & & \boldsymbol\Lambda_2 = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 0.5 & 0 \\ 0 & 0 & 2 \end{bmatrix} \\ & & \\ \textbf{P}_3 = \begin{bmatrix} 0 & 0.87 & -0.50 \\ -1 & 0 & 0 \\ 0 & 0.50 & 0.87 \end{bmatrix} & & \boldsymbol\Lambda_3 = \begin{bmatrix} 0.25 & 0 & 0 \\ 0 & 0.1 & 0 \\ 0 & 0 & 0.75 \end{bmatrix} \end{gather} \] \(\textbf{P}_2\) and \(\textbf{P}_3\) rotate the features so that the states are at right angles in at least one dimension. \(\boldsymbol\Lambda_2\) and \(\boldsymbol\Lambda_3\) inflate or deflate the feature variances along each principal component.
A single draw from the multivariate process under NOC. The vertical black line (21:40 on 2 December) marks time at which the fault would be induced.
We set the threshold to \(\alpha = 0.001\) and repeat the following 1000 times:
An observation is flagged as suspicious if the monitoring statistic is beyond the calculated non-parametric threshold. An observation will trigger an alarm if it is the \(k^{th}\) observation in a row to be flagged. For this simulation study, we triggered an alarm at the third consecutive flag.
For each statistic under AD- and MSAD-PCA, measure
Induce one of the following faults at \(s = 8,500\).
Fault 1A: \(\textbf{X}^*(t_s) = \textbf{X}(t_s) + 2,\ s \ge 8500.\) This fault is a shift for all features in all states. This shift is added before state projections.
Fault 1B: \(x^*(t_s) = x^*(t_s) + 2,\ s \ge 8500.\) This fault is a shift for one feature in all states. This shift is added before state projections.
Fault 1C: \(x^*(t_s) = x^*(t_s) + 0.5,\ z^*(t_s) = z^*(t_s) + 0.5,\ s \ge 8500.\) This fault simulates a shift in two of the process monitoring features in \(\mathcal{S}_3\) only. This shift is added after state projections.
Add 2 to all features in all states.
Add 2 in all states to feature \(X\) only. This shift in feature \(X\) will infect features \(Y\) and \(Z\) through \(\textbf{P}_2\boldsymbol\Lambda_2\) and \(\textbf{P}_3\boldsymbol\Lambda_3\).
Add 0.5 to features \(X\) and \(Z\) only in state \(\mathcal{S}_3\). This fault is induced after state projections.
Fault 2A: \(\textbf{X}^*(t_s) = \textbf{X}(t_s) + (s - 8500)\times 10^{-3}\), \(s > 8500.\) This fault simulates a positive drift across all the process monitoring features. This drift is added before state projections.
Fault 2B: \(y^*(t_s) = y(t_s) + (s - 8500)\times 10^{-3}\) and \(z^*(t_s) = z(t_s) + (s - 8500)\times 10^{-3}\), for \(s > 8500.\) This fault simulates a positive drift in two of the process monitoring features. This drift is added before state projections.
Fault 2C: \(y^*(t_s) = y(t_s) - 1.5 \times \frac{s - 8500}{10080 - 8500}\), for \(s > 8500.\) This fault simulates a negative drift in one of the process monitoring features in \(\mathcal{S}_2\) only. This drift is added after state projections.
Drift all features in all states by a maximum \(+1.58\).
Drift features \(Y\) and \(Z\) in all states by a maximum \(+1.58\). This drift in features \(Y\) and \(Z\) will infect feature \(X\) through \(\textbf{P}_2\boldsymbol\Lambda_2\) and \(\textbf{P}_3\boldsymbol\Lambda_3\).
Drift feature \(Y\) by a maximum \(-1.5\) only in state \(\mathcal{S}_2\). This fault is induced after state projections.
Fault 3A: \(\textbf{X}^*(t_s) = \textbf{X}(t_s^*)\), where \(t_s^* = \left[\frac{\delta(s - 8500)}{\omega - 8500} + 1\right]t_s\). For \(s > 8500,\) this fault will amplify the underlying latent effect for all features. The maximum latent drift of this fault will be \(\delta + 1\). For the single-state simlation, \(\delta + 1 = 3\); for the multi-state simulation, \(\delta + 1 = 6\). This mutation is added before state projections.
Fault 3B: \(z^*(t_s) = z(t_s^*)\), where \(t_s^* = \ln|t_s|\), \(s \ge 8500.\) This fault will dampen the underlying latent effect for \(x_3\) if \(t_s > 1\) and amplify this effect if \(t_s < 1\). This mutation is added before state projections.
Fault 3C: \(y^*(t_s) = y(t_s) + 2 * \textbf{e}_2(s) - 0.25\), for \(s > 8500.\) This fault simulates an error increase and negative shift, but only applied to one process monitoring feature in \(\mathcal{S}_2\). This mutation is added after state projections.
Drift the latent variable \(t\) by a maximum of \(+6\) for all features in all states.
Mutate \(t\) by \(\log t\) in all states for feature \(Z\) only. This mutation through feature \(Z\) will infect features \(X\) and \(Y\) through \(\textbf{P}_2\boldsymbol\Lambda_2\) and \(\textbf{P}_3\boldsymbol\Lambda_3\).
Double and shift by \(-0.25\) the machine-error vector on feature \(Y\) in state \(\mathcal{S}_2\) only. This fault is induced after state projections.
We present an example of parsing the following tables:
Under the Multi-State model:
Under the Single-State model, the pairs of AD-PCA and MSAD-PCA process monitoring statistics perform similarly, so we do not expect significant loss of power when using the MSAD-PCA procedure to detect faults.
We increased the flags to trigger an alarm from 3 to 5 for the real case due to strong serial autocorrelation. Note that these false alarm rates are all greater than or equal to the set threshold level of \(\alpha = 0.1\%\).
| MSAD \(T^2\) | MSAD SPE | AD \(T^2\) | AD SPE | |
|---|---|---|---|---|
| False Alarm Rate | 0.1% | 0.3% | 0.3% | 0.3% |
RmvMonitoringmspProcessData() generates random draws from a serially autocorrelated and nonstationary multi-state (or single-state) multivariate process.mspTrain() trains the projection matrix and non-parametric fault detection thresholds.mspMonitor() assesses incoming process observations and classifies them as normal or abnormal.mspWarning() keeps a running tally of abnormal observations and raises an alarm if necessary.Baggiani, F., and S. Marsili-Libelli. 2009. “Real-Time Fault Detection and Isolation in Biological Wastewater Treatment Plants.” Water Sci. Technol. 60 (11): 2949–61. doi:10.2166/wst.2009.723.
Chouaib, C., H. Mohamed-Faouzi, and D. Messaoud. 2013. “Adaptive Kernel Principal Component Analysis for Nonlinear Dynamic Process Monitoring.” In Control Conference (ASCC), 2013 9th Asian, 1–6. doi:10.1109/ASCC.2013.6606291.
Dong, Dong, and Thomas J. McAvoy. 1996. “Batch Tracking via Nonlinear Principal Component Analysis.” AIChE J. 42 (8): 2199–2208. doi:10.1002/aic.690420810.
Ge, Zhiqiang, and Zhihuan Song. 2012. Multivariate Statistical Process Control: Process Monitoring Methods and Applications. Advances in Industrial Control. Springer.
Ge, Zhiqiang, Chunjie Yang, and Zhihuan Song. 2009. “Improved Kernel PCA-Based Monitoring Approach for Nonlinear Processes.” Chem. Eng. Sci. 64 (9): 2245–55. doi:10.1016/j.ces.2009.01.050.
Kazor, Karen, Ryan W. Holloway, Tzahi Y. Cath, and Amanda S. Hering. 2016. “Comparison of Linear and Nonlinear Dimension Reduction Techniques for Automated Process Monitoring of a Decentralized Wastewater Treatment Facility.” Stoch. Environ. Res. Risk Assess. 30 (5): 1527–44. doi:10.1007/s00477-016-1246-2.
Kresta, James V., John F. MacGregor, and Thomas E. Marlin. 1991. “Multivariate Statistical Monitoring of Process Operating Performance.” Can. J. Chem. Eng. 69 (1): 35–47. doi:10.1002/cjce.5450690105.
Miao, Aimin, Zhihuan Song, Zhiqiang Ge, Le Zhou, and Qiaojun Wen. 2013. “Nonlinear Fault Detection Based on Locally Linear Embedding.” J. Control Theory Appl. 11 (4): 615–22. doi:10.1007/s11768-013-2102-2.
Sanchez-Fernandez, A., M. J. Fuente, and G. I. Sainz-Palmero. 2015. “Fault Detection in Wastewater Treatment Plants Using Distributed PCA Methods.” In 2015 IEEE 20th Conference on Emerging Technologies Factory Automation (ETFA), 1–7. doi:10.1109/ETFA.2015.7301504.
Tenenbaum, Joshua B., Vin de Silva, and John C. Langford. 2000. “A Global Geometric Framework for Nonlinear Dimensionality Reduction.” Science 290 (5500): 2319–23. doi:10.1126/science.290.5500.2319.
Weinberger, Kilian Q., and Lawrence K. Saul. 2006. “Unsupervised Learning of Image Manifolds by Semidefinite Programming.” Int. J. Comput. Vision 70 (1): 77–90. doi:10.1007/s11263-005-4939-z.
Wise, B. M., D. J. Veltkamp, B. Davis, N. L. Ricker, and B. R. Kowalski. 1988. “Principal Components Analysis for Monitoring the West Valley Liquid-Fed Ceramic Melter.” In Management of Radioactive Wastes, and Non-Radioactive Wastes from Nuclear Facilities. Vol. 20. Tucson, AZ.